Proofs for ‘Verifying Spatial Properties of Array Computations’
نویسندگان
چکیده
This technical report provides accompanying proofs for the paper: Verifying Spatial Properties of Array Computations. We show three properties of the lattice model of the stencil specification language. 1) that it is sound with respect to the equational theory of region specifications; 2) that is it sound with respect to the theory of region approximation; 3) that the inference algorithm is sound. We further derive useful identities on the specification language and properties of Union Normal Form—the data structure used to implement the model. Core definitions from the paper are restated here to make the overall report more self contained. Numbering for definitions, lemmas, propositions, theorems, and sections is aligned to the paper [1] for easy cross-reference. Definition 1 (Induction variables). An integer variable is an induction variable if it is the control variable of a “for” loop (do in Fortran), incremented by 1 per iteration. A variable is interpreted as an induction variable only within the scope of the loop body. Throughout, syntactic variables i, j, k range over induction variables. Definition 2 (Array subscripts and indices). An array subscript, denoted a(ē), is an expression which indicates the element of an N -dimensional array a at the N -dimensional index ē, specified by a comma-separated sequence of integer expressions e1, . . . , eN . We also refer to each one of these ei as an index. An index ei is called relative if the expression involves an induction variable. An absolute index is an integer expression which is constant with respect to the enclosing loop, i.e., it does not involve an induction variable. Definition 3 (Origin). For an array subscript a(ē), the index ē is called an origin index, if all e ∈ ē are naked induction variable expressions, e.g., a(i, j). We refer to this as the “origin” since the indices are offset by 0 in each dimension relative to the induction variables. Definition 4 (Neighbourhood and affine index). For an array subscript a(ē), an index e ∈ ē is a neighbourhood index (or neighbour) if e is of the form e ≡ i, e ≡ i + c, or e ≡ i c, where c is an integer constant and i is an induction variable. That is, a neighbourhood index is a constant offset/translation of an induction variable. (The relation ≡ here identifies terms up-to commutativity of + and the inverse relationship of + and − e.g., (-b) + i ≡ i b). An affine index is an index expression of the form a*i + b, where a and b are constants.
منابع مشابه
Array Abstractions from Proofs
We present a technique for using infeasible program paths to automatically infer Range Predicates that describe properties of unbounded array segments. First, we build proofs showing the infeasibility of the paths, using axioms that precisely encode the high-level (but informal) rules with which programmers reason about arrays. Next, we mine the proofs for Craig Interpolants which correspond to...
متن کاملA Mechanically Checked Proof of aComparator Sort
We describe a mechanically checked correctness proof for the compara-tor sort algorithm underlying a microcode program in a commercially designed digital signal processing chip. The abstract algorithm uses an unlimited number of systolic comparator modules to sort a stream of data. In addition to proving that the algorithm produces an ordered permutation of its input, we prove two theorems that...
متن کاملTowards Verifying Nonlinear Integer Arithmetic
We eliminate a key roadblock to efficient verification of nonlinear integer arithmetic using CDCL SAT solvers, by showing how to construct short resolution proofs for many properties of the most widely used multiplier circuits. Such short proofs were conjectured not to exist. More precisely, we give n size regular resolution proofs for arbitrary degree 2 identities on array, diagonal, and Booth...
متن کاملMechanically Verifying a Family of Multiplier Circuits
A methodology for mechanically verifying a family of pa-rameterized multiplier circuits, including many well-known multiplier circuits such as the linear array, the Wallace tree and the 7-3 multi-plier is proposed. A top level speciication for these multipliers is obtained by abstracting the commonality in their behavior. The behavioral correctness of any multiplier in the family can be mechani...
متن کاملRuntime Verification of Remotely Executed Code using Probabilistically Checkable Proof Systems
In this paper we consider the verification and certification of computations that are done remotely. We investigate the use of probabilistically checkable proof (PCP) systems for efficiently certifying such computations. This model can also be applied to verifying security proofs of software downloads. To make the use of PCPs more practical, a new version of Cook’s Theorem is given for the RAM ...
متن کامل